package com.yjy.enum_test;

// 2.定义枚举工具类
public class EnumUtil {

    /**
     * 通过code获取枚举
     */
    public static <T extends CodeEnum> T[] getAll(Class<T> enumClass) {
        return enumClass.getEnumConstants();
    }

    /**
     * 通过code获取枚举
     */
    public static <T extends CodeEnum> T get(Class<T> enumClass, String code) {
        for (T item : enumClass.getEnumConstants()) {
            if (code.equals(item.getCode())) {
                return item;
            }
        }
        return null;
    }

    /**
     * 通过code获取name
     */
    public static <T extends CodeEnum> String getName(Class<T> enumClass, String code) {
        for (T item : enumClass.getEnumConstants()) {
            if (code.equals(item.getCode())) {
                return item.getName();
            }
        }
        return null;
    }

    /**
     * 是否包含code
     */
    public static <T extends CodeEnum> boolean contains(Class<T> enumClass, String code) {
        for (T item : enumClass.getEnumConstants()) {
            if (code.equals(item.getCode())) {
                return true;
            }
        }
        return false;
    }
}